OPS 10 - WindowPtrÇ©ÇÁÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃèÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇÕïsâ¬î\

Åi14-May-96Åj

Q: ÉRÅ[ÉãÉoÉbÉNä÷êîÇÃíÜÇ≈ÉhÉLÉÖÉÅÉìÉgÇÃÉtÉãÉpÉXñºÇéÊìæÇ∑ÇÈïKóvǙdžÇÈÇÃÇ≈Ç∑Ç™ÅAǪÇÍÇ…ä÷òAǵǃǢǪǧǻèÓïÒÇÕÅAǪÇÃÉhÉLÉÖÉÅÉìÉgÇï\é¶ÇµÇƒÇ¢ÇÈÉEÉBÉìÉhÉEÇÃWindowPtrÇæÇØÇ»ÇÃÇ≈Ç∑ÅBÉtÉ@ÉCÉãñºÇÕÇÌǩǡǃǢÇÈÇÃÇ≈Ç∑Ç™ÅAÉfÉBÉåÉNÉgÉäIDÇ‚É{ÉäÉÖÅ[ÉÄÉäÉtÉ@ÉåÉìÉXî‘çÜÇ™ÇÌÇ©ÇÁǻǢÇÃÇ≈Ç∑ÅBWindowRecordÇ©ÇÁdirIDÇΔvRefNumÇéÊìæÇ∑ÇÈï˚ñ@ÇÕǻǢÇ≈ǵÇÂǧǩÅH

A: écîOǻDZÇΔÇ…ÅAïKóvÇΔÇ»ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃèÓïÒÇWindowRecordÇ©ÇÁéÊìæÇ∑ÇÈï˚ñ@ÇÕdžÇËÇ‹ÇπÇÒÅBWindowRecordÇÕÅAÉqÉÖÅ[É}ÉìÉCÉìÉ^ÉtÉFÅ[ÉXÇé¿åªÇ∑ÇÈÇΩÇflÇÃç\ë¢âªÇ≥ÇÍÇΩèÓïÒÇÃÇ›Çä‹ÇÒÇ≈Ç®ÇËÅAǪÇÃíÜÇ…ÇÕÉtÉ@ÉCÉãñºÅié¿ç€Ç…ÇÕÉhÉLÉÖÉÅÉìÉgÇÃÉ^ÉCÉgÉãÅjLJä‹Ç‹ÇÍÇÈDZÇΔǙdžÇËÇ‹Ç∑ÅBÉEÉBÉìÉhÉEÇÕÉhÉLÉÖÉÅÉìÉgÇÃÉfÅ[É^ÇÉÜÅ[ÉUÇ…ï\é¶Ç∑ÇÈéËíiÇíÒãüÇ∑ÇÈLJÇÃÇ≈ÇÕdžÇËÇ‹Ç∑Ç™ÅAWindowRecordÇÕÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃèÓïÒǙǫDZDždžÇÈÇ©ÇΔǢǧèÓïÒÇÕéùǡǃǢNjÇπÇÒÅBdžǻÇΩÇ™Ç∑Ç≈Ç…èqÇ◊ÇΩÇÊǧDžÅAÉtÉãÉpÉXñºÇéÊìæÇ∑ÇÈÇ…ÇÕÉfÉBÉåÉNÉgÉäIDÇΔÉ{ÉäÉÖÅ[ÉÄÉäÉtÉ@ÉåÉìÉXî‘çÜÇ™ïKóvÇ≈Ç∑ÅB

vRefNumÇΔè„à ÉfÉBÉåÉNÉgÉäÇÃIDÅiparent dirIDÅjÇ™ÇÌÇ©ÇÍÇŒÅADTSÉTÉìÉvÉãÉRÅ[ÉhÇÃMoreFilesíÜÇÃÉtÉãÉpÉXä÷òAÇÃÉãÅ[É`ÉìÇÃÇ¢Ç∏ÇÍÇ©ÇégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´ÇÈÇ≈ǵÇÂǧÅB

LJǵÉtÉ@ÉCÉãÇÃÉäÉtÉ@ÉåÉìÉXî‘çÜÇ™ÇÌÇ©ÇÈÇÃÇ≈džÇÍÇŒÅAPBGetFCBInfo()ÇÉRÅ[ÉãǵǃvRefNumÇΔdirIDÇéÊìæÇ∑ÇÈDZÇΔÇ™â¬î\Ç≈džÇËÅAÇ≥ÇÁÇ…MoreFilesÇégópÇ∑ÇÈDZÇΔÇ…ÇÊÇËÉtÉãÉpÉXñºÇéÊìæÇ≈Ç´Ç‹Ç∑ÅBPBGetFCBInfo()ÇÕÉIÅ[ÉvÉìÇ≥ÇÍǃǢÇÈÉtÉ@ÉCÉãÅiFile Control BlockÇÃÉLÉÖÅ[DždžÇÈÉtÉ@ÉCÉãÅjÇÃèÓïÒÇï‘ǵNjÇ∑ÅBPBGetFCBInfo()ÇÕÅAà»â∫ÇÃÇÊǧDžégǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB


pascal OSErr   GetFileLocation(short refNum,
                short *vRefNum,
                long *dirID,
                StringPtr fileName)
 {
        FCBPBRec pb;
        OSErr error;

        pb.ioNamePtr = fileName;
        pb.ioVRefNum = 0;
        pb.ioRefNum = refNum;
        pb.ioFCBIndx = 0;
        error = PBGetFCBInfoSync(&pb);
        *vRefNum = pb.ioFCBVRefNum;
        *dirID = pb.ioFCBParID;
        return (error);
 }

à»â∫ÇÃéëóøÇ‡Ç≤éQèΔÇ≠ÇæÇ≥Ç¢ÅB

* File Control BlockÇÃÇÊÇËè⁄ç◊Ç»èÓïÒDžǬǢǃÇÕÅAInside Macintosh: FilesÇÃ2-81Ç©ÇÁ2-83ÇéQèΔÅB

* PBGetFCBInfoÇÊÇËè⁄ç◊Ç»èÓïÒDžǬǢǃÇÕÅAInside Macintosh: FilesÇÃ2-237Ç©ÇÁ2-238ÇéQèΔÅB

[ Technical Q&A's : Operating System Services : OS Utilities : OPS10 ]